The present invention relates to the field of data communication and, more particularly, to a system and method for accelerating data communication to improve the performance of browsing web pages.
The Internet is an exceedingly popular medium for data communication between computers. The Internet is a hierarchy of many computer networks, all of which are interconnected by various types of server computers. Some of the servers interconnected through the Internet also provide database housing or storage of a plurality of web pages. These web pages may be retrieved by users, also referred to as surfers, operating computers that are connected to the Internet and running browser applications. Following are few exemplary browser applications such as but not limited to Openwave Systems Inc. or Opera Mobile Browser (a trademark of Opera Software ASA), Microsoft Internet Explorer (a trademark of Microsoft), Firefox Web Browser, etc. Many current web pages are defined by markup languages (ML) files, including but not limited to, languages such as HTML, XML, WML, SGML, HDML etc. HTML is an acronym for Hyper Text Markup Language, XML is an acronym for Extensible Markup Language and WML is an acronym for Wireless Markup Language. SGML is an acronym for Standardized General Markup Language. HDML is an acronym for Handheld Device Markup Language. It should be noted that the terms “HTML”, “XML”, “SGML”, “HDML” and “WML” may be used interchangeably herein. Henceforth, the description of different embodiments of the present invention may use the term ‘HTML’ as a representative term for any of the various forms of markup languages unless specifically limited to a particular markup language.
A ML file contains various commands, instructions, data and references (links) that together, define the overall appearance of a web page once it is fetched and rendered using a browser or other similar application. Common HTML files may comprise information that is relevant to the web page, information such as but not limited to a style sheet, text, images, Java Scripts, links to a style sheet, links to Java Scripts, links to additional objects, links to other web pages, etc. A web page can be composed from a plurality of objects or segments of the web page that together comprises the web page. The objects can be distributed over a plurality of servers.
Usually, an HTML file comprises links to the above-described objects rather than the objects themselves. This technique is widely utilized, thus most HTML files only include basic text and links to style sheets, Java scripts, images, and other objects and not the style sheet or the object itself. A portion of the links are used automatically by the browser during parsing of the page—these links are referred as browser's links. For example, links to Java scripts, style sheets, and images can be browser's links. Other links are displayed to be selected by the surfer; those links are referred as surfer's links, for example, links to other web pages.
While surfing the World Wide Web (WWW), a surfer (a user), utilizing a browser equipped computer, may send an HTTP (Hyper Text Transfer Protocol) request to a web server. In response, the web server may send an HTML file that defines the requested web page. In the disclosure of different embodiments of the present invention, the term computer represents any type of data communication device including, but not limited to, a laptop computer, a PDA, a cellular unit, a notebook computer, a personal computer, etc. Upon receiving the HTML file, the browser begins parsing the HTML file. When a browser's link is found, the browser may stop or pause the parsing process, establish a new connection according to the browser's link or use an existing connection, wait to get the object, parse the object and accordingly, may continue parsing the HTML file. In some cases, for example, when the browser's links define a style sheet, then presenting of the text can be delayed until receiving the style sheet. Handling of the browser's links during the rendering or presentment of the web page has an effect on the flow and timing of the presentment, and has an impact on the experience of the surfer.
Furthermore, fetching the objects by the browser increases the load on the Internet and increases the time for fetching the page due to the overhead of setting new connections to the plurality of servers at which the objects are stored as well as the time that it takes to send the request and get the response. This problem is exacerbated when the connection of the surfer's computer is done over a narrow bandwidth link such as a cellular link or when the web-servers are overloaded.
There are some prior art methods that can be used to reduce the impact of fetching of a plurality of objects. Some of the methods convert an HTML file into another file format, such as a bitmap, for example, to be transmitted to a surfer. Another prior art method, which is disclosed in PCT application serial number PCT/IL 2005/001099 uses an intermediate device operating between a surfer who requested a web page and a content server that delivers the web page. The intermediate device receives a markup language file received from the content server and is directed to a requesting client device. The ML file is parsed and at least one browser's link is identified. Then, the a browser's object that is associated with the identified browser's link is fetched and placed into the ML file in place of the browser's link to create a modified markup language file that includes the objects instead of the browser's links. The modified markup language file is transferred to the requesting client device. This method improves the time to text and increases the user experience.
Although the above-described prior art methods improve the user's experience in surfing the web, they have some limitations. For example, the first mentioned prior art eliminates the benefit of using a common web page. For example, a user cannot copy a section of the converted web page and use it in his document. The other prior art method may delay the first response to the user since the objects have to be retrieved by the intermediate device and the modified ML file has to be constructed.
Therefore there is a need in the art for a system and a method for reducing the number of objects that a browser fetches during rendering a web page, with minimum side effect on the user. Such a system may reduce the download time of a web page, improve the time to text of the page and reduces the load over the net.